package betAndWin.application;



public class BetControl {

	private GameControl gameControl;
	private double saldo;
	private double scommessa;
	private int horseId;

	public BetControl(GameControl pGameControl, double pSaldo) {
		this.gameControl = pGameControl;
		this.saldo = pSaldo;
		this.horseId = -1;
	}

	public void scommetti(double scommessa, int pHorseId) throws IllegalArgumentException {
		this.scommessa = scommessa;
		this.horseId = pHorseId;
		double quota = this.gameControl.getQuota(pHorseId);

		System.out.println("Scommessa: " + scommessa);
		System.out.println("Cavallo: " + pHorseId);
		System.out.println("Quota: " + quota);

		if ((scommessa <= 0) || ((this.saldo - scommessa) < 0)) {
			throw new IllegalArgumentException("Argomento non valido: " + scommessa);
		}
		else {
			this.saldo -= scommessa;
		}
	}

	public boolean checkVincita() {
		double quota = this.gameControl.getQuota(this.horseId);
		int winningHorseId = this.gameControl.getWinningHorseId();

		System.out.println("Scommessa: " + this.scommessa);
		System.out.println("Cavallo: " + this.horseId);
		System.out.println("Quota: " + quota);
		System.out.println("Cavallo vincente: " + winningHorseId);

		if (winningHorseId == this.horseId) {
			saldo += scommessa * quota;

			System.out.println("Vincita saldo attuale: " + this.saldo);
			return true;
		}
		else {
			System.out.println("Perdita saldo attuale: " + this.saldo);
			return false;
		}
	}
	
	public double getSaldo() {
		return this.saldo;
	}
}
